home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
lisp
/
kcl
/
kcl.lha
/
cmpnew
/
cmptype.c
< prev
next >
Wrap
C/C++ Source or Header
|
1987-06-04
|
13KB
|
646 lines
/* (C) Copyright Taiichi Yuasa and Masami Hagiya, 1984. All rights reserved. */
#include <cmpinclude.h>
#include "cmptype.h"
init_cmptype(start,size,data)char *start;int size;object data;
{ register object *base=vs_top;register object *sup=base+VM2;vs_top=sup;vs_check;
Cstart=start;Csize=size;Cdata=data;set_VV(VV,VM1,data);
MF(VV[46],L1,start,size,data);
MF(VV[47],L2,start,size,data);
MF(VV[48],L3,start,size,data);
MF(VV[49],L4,start,size,data);
MF(VV[50],L5,start,size,data);
MF(VV[51],L6,start,size,data);
MF(VV[52],L7,start,size,data);
MF(VV[53],L8,start,size,data);
vs_top=vs_base=base;
}
/* function definition for OBJECT-TYPE */
static L1()
{ register object *base=vs_base;
register object *sup=base+VM3;
vs_reserve(VM3);
check_arg(1);
vs_top=sup;
TTL:;
base[2]= base[0];
vs_top=(vs_base=base+2)+1;
Ltype_of();
vs_top=sup;
base[1]= vs_base[0];
{object V1= base[1];
if((V1!= VV[9])
&& (V1!= VV[10])
&& (V1!= VV[4]))goto T3;
vs_top=(vs_base=base+1)+1;
return;
T3:;
if((V1!= VV[7])
&& (V1!= VV[54])
&& (V1!= VV[0]))goto T4;
base[2]= VV[0];
vs_top=(vs_base=base+2)+1;
return;
T4:;
if((V1!= VV[5])
&& (V1!= VV[6]))goto T5;
vs_top=(vs_base=base+1)+1;
return;
T5:;
if((V1!= VV[1]))goto T6;
base[3]= base[0];
vs_top=(vs_base=base+3)+1;
Larray_element_type();
vs_top=sup;
base[2]= vs_base[0];
base[3]= list(2,VV[1],base[2]);
vs_top=(vs_base=base+3)+1;
return;
T6:;
if((V1!= VV[2]))goto T9;
base[3]= base[0];
vs_top=(vs_base=base+3)+1;
Larray_element_type();
vs_top=sup;
base[2]= vs_base[0];
base[3]= list(2,VV[2],base[2]);
vs_top=(vs_base=base+3)+1;
return;
T9:;
base[2]= VV[3];
vs_top=(vs_base=base+2)+1;
return;}
}
/* function definition for TYPE-FILTER */
static L2()
{ register object *base=vs_base;
register object *sup=base+VM4;
vs_reserve(VM4);
check_arg(1);
vs_top=sup;
TTL:;
{object V2= base[0];
if((V2!= VV[9])
&& (V2!= VV[0])
&& (V2!= VV[10])
&& (V2!= VV[4]))goto T12;
vs_top=(vs_base=base+0)+1;
return;
T12:;
if((V2!= VV[55]))goto T13;
base[1]= VV[4];
vs_top=(vs_base=base+1)+1;
return;
T13:;
if((V2!= VV[56]))goto T14;
base[1]= VV[4];
vs_top=(vs_base=base+1)+1;
return;
T14:;
if((V2!= VV[57])
&& (V2!= VV[5]))goto T15;
base[1]= VV[5];
vs_top=(vs_base=base+1)+1;
return;
T15:;
if((V2!= VV[58])
&& (V2!= VV[6]))goto T16;
base[1]= VV[6];
vs_top=(vs_base=base+1)+1;
return;
T16:;
base[3]= base[0];
base[1]= simple_symlispcall_no_event(VV[59],base+3,1);
base[2]= Cnil;
{object V3= car(base[1]);
if((V3!= VV[60])
&& (V3!= VV[2]))goto T19;
if(endp(cdr(base[1]))){
goto T20;}
{object V4= cadr(base[1]);
if((V4!= VV[11]))goto T26;
base[2]= Cnil;
goto T25;
T26:;
if((V4!= VV[7])
&& (V4!= VV[54])
&& (V4!= VV[0]))goto T27;
base[2]= VV[7];
goto T25;
T27:;
if((V4!= VV[8]))goto T28;
base[2]= VV[8];
goto T25;
T28:;
if((V4!= VV[9]))goto T29;
base[2]= VV[9];
goto T25;
T29:;
if((V4!= VV[10]))goto T30;
base[2]= VV[10];
goto T25;
T30:;
if((V4!= VV[4])
&& (V4!= VV[56])
&& (V4!= VV[55]))goto T31;
base[2]= VV[4];
goto T25;
T31:;
base[2]= Ct;}
T25:;
if((base[2])!=Cnil){
goto T21;}
T20:;
base[3]= Ct;
vs_top=(vs_base=base+3)+1;
return;
T21:;
if(endp(cddr(base[1]))){
goto T33;}
if(caddr(base[1])==VV[11]){
goto T33;}
if(!((length(caddr(base[1])))==(1))){
goto T33;}
{object V5= base[2];
if((V5!= VV[7]))goto T39;
base[3]= VV[5];
vs_top=(vs_base=base+3)+1;
return;
T39:;
if((V5!= VV[8]))goto T40;
base[3]= VV[6];
vs_top=(vs_base=base+3)+1;
return;
T40:;
base[3]= list(2,VV[1],base[2]);
vs_top=(vs_base=base+3)+1;
return;}
T33:;
base[3]= list(2,VV[2],base[2]);
vs_top=(vs_base=base+3)+1;
return;
T19:;
if((V3!= VV[61]))goto T41;
base[3]= cdr(base[1]);
base[4]= list(2,VV[13],VV[14]);
if((simple_symlispcall_no_event(VV[62],base+3,2))==Cnil){
goto T43;}
base[3]= VV[9];
vs_top=(vs_base=base+3)+1;
return;
T43:;
base[3]= Ct;
vs_top=(vs_base=base+3)+1;
return;
T41:;
if((V3!= VV[10]))goto T47;
base[3]= VV[10];
vs_top=(vs_base=base+3)+1;
return;
T47:;
if((V3!= VV[4])
&& (V3!= VV[56])
&& (V3!= VV[55]))goto T48;
base[3]= VV[4];
vs_top=(vs_base=base+3)+1;
return;
T48:;
base[3]= base[1];
base[4]= VV[9];
if((simple_symlispcall_no_event(VV[63],base+3,2))==Cnil){
goto T50;}
base[3]= VV[9];
vs_top=(vs_base=base+3)+1;
return;
T50:;
base[3]= base[1];
base[4]= VV[0];
if((simple_symlispcall_no_event(VV[63],base+3,2))==Cnil){
goto T55;}
base[3]= VV[0];
vs_top=(vs_base=base+3)+1;
return;
T55:;
base[3]= base[1];
base[4]= VV[10];
if((simple_symlispcall_no_event(VV[63],base+3,2))==Cnil){
goto T60;}
base[3]= VV[10];
vs_top=(vs_base=base+3)+1;
return;
T60:;
base[3]= base[1];
base[4]= VV[4];
if((simple_symlispcall_no_event(VV[63],base+3,2))==Cnil){
goto T65;}
base[3]= VV[4];
vs_top=(vs_base=base+3)+1;
return;
T65:;
base[3]= base[1];
base[4]= VV[15];
if((simple_symlispcall_no_event(VV[63],base+3,2))==Cnil){
goto T70;}
base[3]= VV[16];
vs_top=(vs_base=base+3)+1;
return;
T70:;
base[3]= base[1];
base[4]= VV[5];
if((simple_symlispcall_no_event(VV[63],base+3,2))==Cnil){
goto T75;}
base[3]= VV[5];
vs_top=(vs_base=base+3)+1;
return;
T75:;
base[3]= base[1];
base[4]= VV[6];
if((simple_symlispcall_no_event(VV[63],base+3,2))==Cnil){
goto T80;}
base[3]= VV[6];
vs_top=(vs_base=base+3)+1;
return;
T80:;
base[3]= base[1];
base[4]= VV[17];
if((simple_symlispcall_no_event(VV[63],base+3,2))==Cnil){
goto T85;}
base[3]= VV[18];
vs_top=(vs_base=base+3)+1;
return;
T85:;
base[3]= base[1];
base[4]= VV[19];
if((simple_symlispcall_no_event(VV[63],base+3,2))==Cnil){
goto T90;}
base[3]= VV[20];
vs_top=(vs_base=base+3)+1;
return;
T90:;
base[3]= base[1];
base[4]= VV[21];
if((simple_symlispcall_no_event(VV[63],base+3,2))==Cnil){
goto T95;}
base[3]= VV[22];
vs_top=(vs_base=base+3)+1;
return;
T95:;
base[3]= base[1];
base[4]= VV[23];
if((simple_symlispcall_no_event(VV[63],base+3,2))==Cnil){
goto T100;}
base[3]= VV[24];
vs_top=(vs_base=base+3)+1;
return;
T100:;
base[3]= base[1];
base[4]= VV[25];
if((simple_symlispcall_no_event(VV[63],base+3,2))==Cnil){
goto T105;}
base[3]= VV[26];
vs_top=(vs_base=base+3)+1;
return;
T105:;
base[3]= base[1];
base[4]= VV[27];
if((simple_symlispcall_no_event(VV[63],base+3,2))==Cnil){
goto T110;}
base[3]= VV[28];
vs_top=(vs_base=base+3)+1;
return;
T110:;
base[3]= base[1];
base[4]= VV[29];
if((simple_symlispcall_no_event(VV[63],base+3,2))==Cnil){
goto T115;}
base[3]= VV[30];
vs_top=(vs_base=base+3)+1;
return;
T115:;
base[3]= base[1];
base[4]= VV[31];
if((simple_symlispcall_no_event(VV[63],base+3,2))==Cnil){
goto T120;}
base[3]= VV[32];
vs_top=(vs_base=base+3)+1;
return;
T120:;
base[3]= base[1];
base[4]= VV[33];
if((simple_symlispcall_no_event(VV[63],base+3,2))==Cnil){
goto T125;}
base[3]= VV[34];
vs_top=(vs_base=base+3)+1;
return;
T125:;
base[3]= Ct;
vs_top=(vs_base=base+3)+1;
return;}}
}
/* function definition for TYPE-AND */
static L3()
{ register object *base=vs_base;
register object *sup=base+VM5;
vs_reserve(VM5);
check_arg(2);
vs_top=sup;
TTL:;
if(!(equal(base[0],base[1]))){
goto T130;}
vs_top=(vs_base=base+0)+1;
return;
T130:;
if(!(base[0]==Ct)){
goto T133;}
vs_top=(vs_base=base+1)+1;
return;
T133:;
if(!(base[1]==Ct)){
goto T136;}
vs_top=(vs_base=base+0)+1;
return;
T136:;
if(!(type_of(base[0])==t_cons)){
goto T139;}
{object V6= car(base[0]);
if((V6!= VV[2]))goto T141;
{object V7= cadr(base[0]);
if((V7!= VV[7]))goto T142;
if(!(base[1]==VV[5])){
goto T144;}
vs_top=(vs_base=base+1)+1;
return;
T144:;
base[2]= Cnil;
vs_top=(vs_base=base+2)+1;
return;
T142:;
if((V7!= VV[8]))goto T146;
if(!(base[1]==VV[6])){
goto T148;}
vs_top=(vs_base=base+1)+1;
return;
T148:;
base[2]= Cnil;
vs_top=(vs_base=base+2)+1;
return;
T146:;
if(!(type_of(base[1])==t_cons)){
goto T151;}
if(!(car(base[1])==VV[1])){
goto T151;}
if(!(cadr(base[0])==cadr(base[1]))){
goto T151;}
vs_top=(vs_base=base+1)+1;
return;
T151:;
base[2]= Cnil;
vs_top=(vs_base=base+2)+1;
return;}
T141:;
if((V6!= VV[1]))goto T157;
if(!(type_of(base[1])==t_cons)){
goto T159;}
if(!(car(base[1])==VV[2])){
goto T159;}
if(!(cadr(base[0])==cadr(base[1]))){
goto T159;}
vs_top=(vs_base=base+0)+1;
return;
T159:;
base[2]= Cnil;
vs_top=(vs_base=base+2)+1;
return;
T157:;
base[2]= Cnil;
vs_top=(vs_base=base+2)+1;
return;}
T139:;
{object V8= base[0];
if((V8!= VV[5]))goto T165;
if(!(type_of(base[1])==t_cons)){
goto T167;}
if(!(car(base[1])==VV[2])){
goto T167;}
if(!(cadr(base[1])==VV[7])){
goto T167;}
vs_top=(vs_base=base+0)+1;
return;
T167:;
base[2]= Cnil;
vs_top=(vs_base=base+2)+1;
return;
T165:;
if((V8!= VV[6]))goto T173;
if(!(type_of(base[1])==t_cons)){
goto T175;}
if(!(car(base[1])==VV[2])){
goto T175;}
if(!(cadr(base[1])==VV[8])){
goto T175;}
vs_top=(vs_base=base+0)+1;
return;
T175:;
base[2]= Cnil;
vs_top=(vs_base=base+2)+1;
return;
T173:;
if((V8!= VV[38]))goto T181;
{object x= base[1],V9= VV[35];
while(!endp(V9))
if(eql(x,V9->c.c_car)){
goto T184;
}else V9=V9->c.c_cdr;
goto T183;}
T184:;
vs_top=(vs_base=base+1)+1;
return;
T183:;
base[2]= Cnil;
vs_top=(vs_base=base+2)+1;
return;
T181:;
if((V8!= VV[64]))goto T185;
{object x= base[1],V10= VV[36];
while(!endp(V10))
if(eql(x,V10->c.c_car)){
goto T188;
}else V10=V10->c.c_cdr;
goto T187;}
T188:;
vs_top=(vs_base=base+1)+1;
return;
T187:;
base[2]= Cnil;
vs_top=(vs_base=base+2)+1;
return;
T185:;
if((V8!= VV[4])
&& (V8!= VV[10]))goto T189;
{object x= base[1],V11= VV[37];
while(!endp(V11))
if(eql(x,V11->c.c_car)){
goto T192;
}else V11=V11->c.c_cdr;
goto T191;}
T192:;
vs_top=(vs_base=base+0)+1;
return;
T191:;
base[2]= Cnil;
vs_top=(vs_base=base+2)+1;
return;
T189:;
if((V8!= VV[9]))goto T193;
if(!(base[1]==VV[38])){
goto T195;}
base[2]= VV[9];
vs_top=(vs_base=base+2)+1;
return;
T195:;
base[2]= Cnil;
vs_top=(vs_base=base+2)+1;
return;
T193:;
base[2]= Cnil;
vs_top=(vs_base=base+2)+1;
return;}
}
/* function definition for TYPE>= */
static L4()
{ register object *base=vs_base;
register object *sup=base+VM6;
vs_reserve(VM6);
check_arg(2);
vs_top=sup;
TTL:;
base[3]= base[0];
base[4]= base[1];
vs_top=(vs_base=base+3)+2;
L3();
vs_top=sup;
base[2]= vs_base[0];
base[3]= (equal(base[2],base[1])?Ct:Cnil);
vs_top=(vs_base=base+3)+1;
return;
}
/* function definition for RESET-INFO-TYPE */
static L5()
{ register object *base=vs_base;
register object *sup=base+VM7;
vs_reserve(VM7);
check_arg(1);
vs_top=sup;
TTL:;
if((structure_ref(base[0],VV[39],2))==Cnil){
goto T201;}
base[2]= base[0];
base[1]= simple_symlispcall_no_event(VV[65],base+2,1);
structure_set(base[1],VV[39],2,Ct);
vs_top=(vs_base=base+1)+1;
return;
T201:;
vs_top=(vs_base=base+0)+1;
return;
}
/* function definition for AND-FORM-TYPE */
static L6()
{ register object *base=vs_base;
register object *sup=base+VM8;
vs_reserve(VM8);
check_arg(3);
vs_top=sup;
TTL:;
base[3]= Cnil;
base[4]= base[0];
base[5]= structure_ref(cadr(base[1]),VV[39],2);
vs_top=(vs_base=base+4)+2;
L3();
vs_top=sup;
base[3]= vs_base[0];
if((base[3])!=Cnil){
goto T210;}
base[4]= VV[40];
base[5]= base[2];
base[6]= base[0];
(void)simple_symlispcall_no_event(VV[66],base+4,3);
T210:;
if(!(base[3]==structure_ref(cadr(base[1]),VV[39],2))){
goto T217;}
vs_top=(vs_base=base+1)+1;
return;
T217:;
base[5]= cadr(base[1]);
base[4]= simple_symlispcall_no_event(VV[65],base+5,1);
structure_set(base[4],VV[39],2,base[3]);
base[5]= listA(3,car(base[1]),base[4],cddr(base[1]));
vs_top=(vs_base=base+5)+1;
return;
}
/* function definition for CHECK-FORM-TYPE */
static L7()
{ register object *base=vs_base;
register object *sup=base+VM9;
vs_reserve(VM9);
check_arg(3);
vs_top=sup;
TTL:;
base[3]= base[0];
base[4]= structure_ref(cadr(base[1]),VV[39],2);
vs_top=(vs_base=base+3)+2;
L3();
vs_top=sup;
if((vs_base[0])!=Cnil){
goto T223;}
base[3]= VV[41];
base[4]= base[2];
base[5]= base[0];
symlispcall_no_event(VV[66],base+3,3);
return;
T223:;
base[3]= Cnil;
vs_top=(vs_base=base+3)+1;
return;
}
/* function definition for DEFAULT-INIT */
static L8()
{ register object *base=vs_base;
register object *sup=base+VM10;
vs_reserve(VM10);
check_arg(1);
vs_top=sup;
TTL:;
{object V12= base[0];
if((V12!= VV[9]))goto T231;
base[1]= VV[42];
(void)simple_symlispcall_no_event(VV[66],base+1,1);
goto T230;
T231:;
if((V12!= VV[0]))goto T233;
base[1]= VV[43];
(void)simple_symlispcall_no_event(VV[66],base+1,1);
goto T230;
T233:;
if((V12!= VV[4]))goto T235;
base[1]= VV[44];
(void)simple_symlispcall_no_event(VV[66],base+1,1);
goto T230;
T235:;
if((V12!= VV[10]))goto T237;
base[1]= VV[45];
(void)simple_symlispcall_no_event(VV[66],base+1,1);
goto T230;
T237:;}
T230:;
symlispcall_no_event(VV[67],base+1,0);
return;
}